package com.ruoyi.mapper;

import java.util.List;
import com.ruoyi.domain.DunningFrom;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

/**
 * 催款申请单Mapper接口
 * 
 * @author ruoyi
 * @date 2020-07-09
 */
public interface DunningFromMapper 
{
    /**
     * 查询催款申请单
     * 
     * @param dId 催款申请单ID
     * @return 催款申请单
     */
    public DunningFrom selectDunningFromById(Long dId);

    /**
     * 查询催款申请单列表
     * 
     * @param dunningFrom 催款申请单
     * @return 催款申请单集合
     */
    public List<DunningFrom> selectDunningFromList(DunningFrom dunningFrom);

    /**
     * 新增催款申请单
     * 
     * @param dunningFrom 催款申请单
     * @return 结果
     */
    public int insertDunningFrom(DunningFrom dunningFrom);

    /**
     * 根据工程合同对应的付款申请单
     */
    @Select("select * from dunning_from where p_id = #{pId}")
    @ResultMap("DunningFromResult")
    List<DunningFrom> selectDunningFromListss(Long pId);

    /**
     * 修改催款申请单
     * 
     * @param dunningFrom 催款申请单
     * @return 结果
     */
    public int updateDunningFrom(DunningFrom dunningFrom);

    /**
     * 删除催款申请单
     * 
     * @param dId 催款申请单ID
     * @return 结果
     */
    public int deleteDunningFromById(Long dId);

    /**
     * 批量删除催款申请单
     * 
     * @param dIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteDunningFromByIds(String[] dIds);


    /**
     * 查询和总项目有关系的催款申请单
     */
    @Select("select * from dunning_from where p_id = #{sId}")
    @ResultMap("DunningFromResult")
    List<DunningFrom> selectDunningFromLists(Long sId);

    /**
     * 未付款提交到财务总监
     */
    public int submitExaStatus(Long dId);

    /**
     * 总经理通过申请
     */
    public int conExaStatus(Long dId);

    /**
     * 已付款
     */
    public int overExaStatus(Long dId);

    /**
     * 财务处理
     */
    public int consExaStatus(Long dId);


    /**
     * 查询催款支付金额列表
     *
     * @param pId 催款申请
     * @return 催款申请集合
     */
    public List<DunningFrom> selectId(Long pId);

    /**
     * 导出所有
     *
     * @param df 用户信息
     * @return 用户信息集合信息
     */
    public List<DunningFrom> selectAllexport(DunningFrom df);
}
